package vip.zhenzicheng.algorithm.leetcode.linked_list;

import vip.zhenzicheng.algorithm.ListNode;

/**
 * <a href="https://leetcode.cn/problems/middle-of-the-linked-list/">链表中间的节点 [简单]</a>
 * 给定一个链表头结点 head，返回链表的中间节点。如果有两个中间节点返回第二个。
 * input:[1,2,3,4,5] -> output:[3,4,5] 即返回3
 * 提示：给定链表的结点数介于 1 和 100 之间。
 *
 * @author zhenzicheng
 * @date: 2022-06-03 10:50
 */
public class MiddleOfTheLinkedList_876 {

  public ListNode middleNode(ListNode head) {
    ListNode fast = head, slow = head;
    while (fast != null && fast.next != null) {
      slow = slow.next;
      fast = fast.next.next;
    }

    return slow;
  }
}
